package com.hsgene.order.dto.agency;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.hsgene.common.util.date.TimeJsonDeserializer;
import com.hsgene.common.util.validation.FieldChecker;

import java.util.Date;
import java.util.List;

/**
 * @Description: 机构确认样本弹窗信息
 * @ProjectName: hdas-geneshop
 * @Package: com.hsgene.order.dto.agency
 * @Author: 江承良
 * @CreateDate: 2018/11/8 10:02
 * @Version: 1.0
 * Copyright: Copyright (c) 2018
 */
public class SampleConfirmDto {
    /**
     * 订单id
     */
    private String orderId;

    /**
     * 套餐id
     */
    private String packageId;

    /**
     * 套餐名称
     */
    private String packageName;

    /**
     * 样本条码
     */
    private String sampleBarcode;

    /**
     * 采样时间
     */
    private Date collectSampleDateTime;

    /**
     * 特殊说明
     */
    private String remarks;

    /**
     * 快递公司
     */
    private String courierCompanyName;

    /**
     * 快递单号
     */
    private String courierNo;

    /**
     * 快递备注
     */
    private String courierRemarks;

    /**
     * 样本类型id
     */
    private String sampleIds;

    /**
     * 样本确认人id
     */
    private String signer;

    /**
     * 样本确认人
     */
    private String signerName;

    /**
     * 样本确认时间
     */
   // @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss",locale = "zh",timezone = "GMT+8")
    @JsonDeserialize(using = TimeJsonDeserializer.class)
    private Date signerDateTime;

    /**
     * 医院编码
     */
    private String hospitalCode;

    /**
     * 白片数量
     */
    private Integer whiteCount;

    /**
     * 状态(1:样本待确认、2：报告待上传，3：报告待审核，4:待寄送，5:待签收，6:完成，7：终止)
     */
    private Integer status;

    /**
     * 样本类型信息
     */
    private List<SampleInfoDto> sampleInfoDtos;

    public void signCheck() {
        FieldChecker.checkEmpty(orderId, "订单id");
        FieldChecker.checkEmpty(packageId, "套餐id");
        FieldChecker.checkEmpty(signer, "签收人");
    }

    public String getOrderId() {
        return orderId;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    public String getPackageId() {
        return packageId;
    }

    public void setPackageId(String packageId) {
        this.packageId = packageId;
    }

    public String getPackageName() {
        return packageName;
    }

    public void setPackageName(String packageName) {
        this.packageName = packageName;
    }

    public String getSampleBarcode() {
        return sampleBarcode;
    }

    public void setSampleBarcode(String sampleBarcode) {
        this.sampleBarcode = sampleBarcode;
    }

    public Date getCollectSampleDateTime() {
        return collectSampleDateTime;
    }

    public void setCollectSampleDateTime(Date collectSampleDateTime) {
        this.collectSampleDateTime = collectSampleDateTime;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public String getCourierCompanyName() {
        return courierCompanyName;
    }

    public void setCourierCompanyName(String courierCompanyName) {
        this.courierCompanyName = courierCompanyName;
    }

    public String getCourierNo() {
        return courierNo;
    }

    public void setCourierNo(String courierNo) {
        this.courierNo = courierNo;
    }

    public String getCourierRemarks() {
        return courierRemarks;
    }

    public void setCourierRemarks(String courierRemarks) {
        this.courierRemarks = courierRemarks;
    }

    public List<SampleInfoDto> getSampleInfoDtos() {
        return sampleInfoDtos;
    }

    public void setSampleInfoDtos(List<SampleInfoDto> sampleInfoDtos) {
        this.sampleInfoDtos = sampleInfoDtos;
    }

    public String getSampleIds() {
        return sampleIds;
    }

    public void setSampleIds(String sampleIds) {
        this.sampleIds = sampleIds;
    }

    public String getSignerName() {
        return signerName;
    }

    public void setSignerName(String signerName) {
        this.signerName = signerName;
    }

    public Date getSignerDateTime() {
        return signerDateTime;
    }

    public void setSignerDateTime(Date signerDateTime) {
        this.signerDateTime = signerDateTime;
    }

    public String getHospitalCode() {
        return hospitalCode;
    }

    public void setHospitalCode(String hospitalCode) {
        this.hospitalCode = hospitalCode;
    }

    public Integer getWhiteCount() {
        return whiteCount;
    }

    public void setWhiteCount(Integer whiteCount) {
        this.whiteCount = whiteCount;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getSigner() {
        return signer;
    }

    public void setSigner(String signer) {
        this.signer = signer;
    }
}
